场景介绍
- 可以应用于语音助手,通过智能对话与即时问答的智能交互,帮助用户快速解决问题。比如,在驾驶时无法腾出双手来使用手机,但可以通过语音助手交互来操控手机,完成机票订购等操作。
 - 在家庭设备上可以做到声控设备的各种操作,比如家庭智能设备的打开和关闭等。
 
接口说明
助手类意图识别提供了一个函数接口getAssistantIntention(),该接口主要针对助手场景下的意图识别,分析用户的意图。
| 
 功能描述  | 
 接口原型  | 
|---|---|
| 
 助手类意图(同步接口)  | 
 ResponseResult getAssistantIntention(String requestData, int requestType)  | 
| 
 助手类意图(异步接口)  | 
 ResponseResult getAssistantIntention(final String requestData, final int requestType, final OnResultListener<ResponseResult> listener)  | 
| 
 初始化  | 
 void init(Context context, OnResultListener<Integer> listener, boolean isLoadModel)  | 
| 
 销毁接口  | 
 void destroy(Context context)  | 
接口输入值说明
requestType表示请求类型,通过NluRequestType类定义了以下请求类型:
| 
 类型  | 
 说明  | 
|---|---|
| 
 static int  | 
 REQUEST_TYPE_LOCAL = 0 本地请求  | 
| 
 参数名  | 
 是否必选  | 
 值类型  | 
 说明  | 
|---|---|---|---|
| 
 text  | 
 是  | 
 String  | 
 待分析的文本,格式要求为“utf-8”,文本长度不超过50个字符。  | 
| 
 category  | 
 否  | 
 String  | 
 需要分析的意图类别,默认分析所有类别,多个类别用半角逗号隔开。例如,需要系统设置类和出行类,取值为“systemSetting,trip”。取值详情参见表1。  | 
| 
 module  | 
 否  | 
 String  | 
 用来指定具体分析哪些意图模块,默认分析所有模块,多个意图模块用半角逗号“,”隔开。例如分析订火车票和订机票意图,取值为“bookTrainTicket,bookAirTicket”。取值详情参见表1。 备注:分析时category与module取并集,如category为“systemSetting”,module为“bookTrainTicket”,将会分析系统设置类的所有意图、以及订火车票“bookTrainTicket”意图 。  | 
| 
 callPkg  | 
 否  | 
 String  | 
 调用者名称  | 
| 
 callType  | 
 否  | 
 int  | 
 调用者类型,取值如下: 
  | 
| 
 callVersion  | 
 否  | 
 String  | 
 调用者版本号  | 
| 
 callState  | 
 否  | 
 int  | 
 调用者状态,取值如下: 
  | 
接口返回值说明
| 
 参数名  | 
 子参数  | 
 是否必选  | 
 值类型  | 
 说明  | 
|---|---|---|---|---|
| 
 code  | 
 –  | 
 是  | 
 int  | 
 0:成功 1:系统正在初始化 2:参数错误 3:系统忙 4:系统异常 5:任务超时 6:其它错误  | 
| 
 message  | 
 –  | 
 是  | 
 String  | 
 异常信息  | 
| 
 intentions  | 
 –  | 
 否  | 
 JSONArray  | 
 意图列表,数组里的类型为JSONObject  | 
| 
 name  | 
 否  | 
 String  | 
 意图名  | 
|
| 
 attributes  | 
 否  | 
 JSONArray  | 
 意图对应的属性  | 
开发步骤
在使用助手类意图识别API时,将实现助手类意图识别的相关的类添加至工程。
import ohos.ai.nlu.NluRequestType;
import ohos.ai.nlu.NluClient;
import ohos.ai.nlu.OnResultListener;
import ohos.ai.nlu.ResponseResult;
使用NluClient静态类进行初始化,通过异步方式获取服务的连接。
- context:应用上下文信息,应为ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的实例或子类实例。
 - listener:初始化结果的回调,可以传null。
 - isLoadModel:是否加载模型,如果传true,则在初始化时加载模型;如果传false,则在初始化时不加载模型。
 
NluClient.getInstance().init(context, new OnResultListener<Integer>(){
public void onResult(Integer result){
// 初始化成功回调,在服务初始化成功调用该函数
}
}, true);
调用助手类意图识别接口。
/** Constructing input parameters for testing getAssistantIntention method. */
String requestData = “{\”text\”:\”关闭wlan\”}”;
/** Start analyzing intention based on assistant tool */
ResponseResult responseResult = NluClient.getInstance().getAssistantIntention(requestData, NluRequestType.REQUEST_TYPE_LOCAL);
或者调用助手类意图识别的异步接口
NluClient.getInstance()
.getAssistantIntention(requestData, NluRequestType.REQUEST_TYPE_LOCAL, new OnResultListener<ResponseResult>() {
@Override
public void onResult(ResponseResult result) {
// 异步返回结果处理
}
});
解绑服务
/** release resource*/
NluClient.getInstance().destroy(context);